prompt 预交金账户查询接口(统一支付平台) SP_PAY_YJJ_GETGRJBXX create or replace procedure SP_PAY_YJJ_GETGRJBXX ( IN_OPERETORID in varchar2 ,--入参:char(30) N 操作员编号 IN_OPERETORNAME in varchar2 ,--入参:char(50) N 操作员姓名 IN_TERMNO in varchar2 ,--入参:char(32) Y 终端编号 IN_CARDTYPE in varchar2 ,--入参:char(2) N 卡类型 01社保卡 02市民健康卡 03院内就诊卡 04身份证号 05病案号/住院号 06住院ID IN_CARDNO in varchar2 ,--入参:char(32) N 卡号 IN_ACCOUNTTYPE in varchar2 ,--入参:char(2) N 帐户类型 01门诊预交金账户 02 住院预交金账户 IN_IDNO in varchar2 ,--入参:char(32) Y 身份证号 IN_NOTES in varchar2 ,--入参:char(256) Y 备注信息 OUT_RETCODE out varchar2 ,--出参: 返回码 00成功 OUT_RETMSG out varchar2 ,--出参: 返回说明 OUT_CARDTYPE out varchar2 ,--出参: 卡类型 OUT_CARDNO out varchar2 ,--出参: 卡号 OUT_HISCUSTID out varchar2 ,--出参: 持卡人院内ID OUT_BALANCE out number ,--出参: 余额 OUT_IDTYPE out varchar2 ,--出参: 证件类型 OUT_IDNO out varchar2 ,--出参: 证件号 OUT_USERNAME out varchar2 ,--出参: 用户姓名 OUT_USERSEX out varchar2 ,--出参: 性别 1 男 2 女 OUT_ACCOUNTTYPE out varchar2 ,--出参: 账户类型 01 门诊预交金账户 02 住院预交金账户 OUT_STATE out varchar2 --出参: 账户状态 01:正常 02:挂失 03:冻结 04:注销 ) as -- MODIFICATION HISTORY -- Person Date Comments -- qks 2018.03.06 create:统一支付平台接口改造; for MZSF9-20180306-002 -- liwm 2019.05.31 归档现场修改 ,增加账户状态 MZSF9-20190530-005 -- zhangyc 2022.05.20 增加返回 OUT_STATE 01:正常 02:挂失 03:冻结 04:注销 LS_BRZYID number(10); LS_ZHYE00 number(12,2); RBRXX BM_BRXXB0%rowtype; RZYXX ZY_BRXXB0%rowtype; LS_SFDJ00 ZY_BRZHXX.SFDJ00%type; begin OUT_RETCODE:='99';--出参: 返回码 00成功 OUT_STATE:='01';--出参: 账户状态 01:正常 02:挂失 03:冻结 04:注销 --门诊业务处理--begin-- if IN_ACCOUNTTYPE in ('01') then --01门诊预交金账户 02 住院预交金账户 select SF_PAY_BRZYID(IN_CARDTYPE,IN_CARDNO,IN_ACCOUNTTYPE) into LS_BRZYID from dual; if LS_BRZYID=0 then OUT_RETCODE:='01'; OUT_RETMSG:='未找到有效的病人基本信息!'; rollback; return; end if; --执行BM_BRXXB0 begin select * into RBRXX from BM_BRXXB0 A where A.BRID00=LS_BRZYID; exception when others then OUT_RETCODE:='02'; OUT_RETMSG:='查找BM_BRXXB0异常!'; rollback; return; end; --判断账户状态 begin select SFDJ00 into LS_SFDJ00 from SF_BRZHXX where BRID00=LS_BRZYID; exception when others then OUT_RETCODE:='02'; OUT_RETMSG:='查找SF_BRZHXX异常!'; end; --OUT_STATE 账户状态 01:正常 02:挂失 03:冻结 04:注销 if LS_SFDJ00 in ('1') then OUT_STATE:='03'; elsif LS_SFDJ00 in ('2') then --0 正常 1 冻结 2 停用 OUT_STATE :='04'; end if; --执行余额 --0 门诊 1住院 /BRID00 /交费类型 1:门诊 2:住院/返回类型 0:可用余额 1:总余额 2:现金余额 3:停用金额 begin select SF_SF_GETBRZHYE(0,LS_BRZYID,1,0) into LS_ZHYE00 from dual; exception when others then LS_ZHYE00:=0; end; end if; --门诊业务处理--end-- --住院业务处理--begin-- if IN_ACCOUNTTYPE in ('02') then --01门诊预交金账户 02 住院预交金账户 select SF_PAY_BRZYID(IN_CARDTYPE,IN_CARDNO,IN_ACCOUNTTYPE) into LS_BRZYID from dual; if LS_BRZYID=0 then OUT_RETCODE:='01'; OUT_RETMSG:='未找到有效的病人基本信息!'; rollback; return; end if; --执行BM_BRXXB0 begin select A.* into RBRXX from BM_BRXXB0 A,ZY_BRXXB0 B where A.BRID00=B.BRID00 and B.ZYID00=LS_BRZYID; exception when others then OUT_RETCODE:='02'; OUT_RETMSG:='查找ZY_BRXXB0异常!'; end; --判断账户状态 begin select SFDJ00 into LS_SFDJ00 from ZY_BRZHXX where ZYID00=LS_BRZYID; exception when others then OUT_RETCODE:='02'; OUT_RETMSG:='查找ZY_BRZHXX异常!'; end; --OUT_STATE 账户状态 01:正常 02:挂失 03:冻结 04:注销 if LS_SFDJ00 in ('1') then OUT_STATE:='03'; elsif LS_SFDJ00 in ('2') then --0 正常 1 冻结 2 停用 OUT_STATE :='04'; end if; --执行余额 --0 门诊 1住院 /BRID00 /交费类型 1:门诊 2:住院/返回类型 0:可用余额 1:总余额 2:现金余额 3:停用金额 begin select SF_SF_GETBRZHYE(1,RBRXX.BRID00,2,0) into LS_ZHYE00 from dual; exception when others then LS_ZHYE00:=0; end; end if; --住院业务处理--end-- OUT_RETCODE:='00';--出参: 返回码 00成功 OUT_RETMSG:='';--出参: 返回说明 OUT_CARDTYPE:=IN_CARDTYPE;--出参: 卡类型 OUT_CARDNO:=IN_CARDNO;--出参: 卡号 OUT_ACCOUNTTYPE:=IN_ACCOUNTTYPE;--出参: 账户类型 01 门诊预交金账户 02 住院预交金账户 OUT_BALANCE:=nvl(LS_ZHYE00,0);--出参: 余额 OUT_HISCUSTID:=nvl(LS_BRZYID,0);--出参: 持卡人院内ID --OUT_STATE:='01';--出参: 账户状态 01:正常 02:挂失 03:冻结 04:注销 OUT_IDTYPE:=RBRXX.BRZJLX;--出参: 证件类型 OUT_IDNO:=RBRXX.BRZJBH;--出参: 证件号 OUT_USERNAME:=RBRXX.BRXM00;--出参: 用户姓名 if RBRXX.BRXB00='男' then --出参: 性别 1 男 2 女 OUT_USERSEX:='1'; else OUT_USERSEX:='2'; end if; --提交事务 if OUT_RETCODE='00' then commit; else rollback; end if; exception when no_data_found then OUT_RETCODE:='99'; OUT_RETMSG:=substrb('预交金账户查询(SP_PAY_YJJ_GETGRJBXX)错误!'||sqlerrm,1,200); rollback; when others then OUT_RETCODE:='99'; OUT_RETMSG:=substrb('预交金账户查询(SP_PAY_YJJ_GETGRJBXX)错误!'||sqlerrm,1,200); rollback; end; / show error; --%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%